Binary protocol for session initiation in a wireless communications system

ABSTRACT

A method, template, protocol, apparatus, system, and computer software for implementing a binary protocol for session initiation in a wireless communications system. The method for creating, modifying or terminating an IP multimedia session among one or more binary session initiation protocol (B-SIP) entities includes providing a flexible template with at least one mandatory field and at least one optional field, wherein the flexible template has fixed and variable length fields, representing a message type with a template id, and maintaining session specific information in a cache. The message template for creating, modifying or terminating an IP multimedia session among one or more binary session initiation protocol (B-SIP) entities, includes at least one mandatory field and at least one optional field, at least one fixed length field and at least one variable length field, wherein each of said at least one variable length fields is preceded by a length field and each of said at least one optional fields is preceded by an identifier, wherein said at least one mandatory field precedes said at least one optional field and said at least one fixed length field precedes said at least one variable length field.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is related to a concurrently filed application by Chuah et al., entitled “Protocol Message Compression For a Wireless Communications System”, the entire contents of which are hereby incorporated by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] This invention relates to communications and, more particularly, to a binary protocol for session initiation in a wireless communications system.

[0004] 2. Description of Related Art

[0005] Two communication technologies are commonly used by the general public; cellular telephony and the Internet. Cellular telephony provides its users with the freedom of mobility—the possibility of being reached with reasonable service quality regardless of location. However, the main service provided by cellular telephony is speech. While flexibility for all kinds of usage (speech, data, video, audio, etc.) has been Internet's strength, its focus has been on fixed connections and relatively large terminals, and the quality of some services (such as Internet telephony) has generally been poor. As technology advances, the Internet and cellular technologies are merging. Future cellular “phones” may contain an IP-stack (internet protocol) and support voice over IP in addition to web-browsing, e-mail, etc. In essence, the Internet is going mobile, or cellular systems are becoming much more than telephony, depending on the point of view.

[0006]FIG. 1 shows a conventional network 10 which can be divided into a radio access network (RAN) 12 and a core network (CN) 14. The RAN 12 comprises the equipment used to support wireless interfaces 16 a-b between a wireless unit 18 a-b and the network 10. The RAN 12 includes NodeBs or base stations 20 a-c connected over links (Iub links) 21 a-c to radio network or base station controllers (RNC) 22 a-b. The interface between the base station and the RNC is referred to as the Iub interface or link, and the interface between two RNCs is referred to as the Iur interface. Currently, both the Iub and Iur interfaces are based on ATM (a synchronous transfer mode), and ATM switches are allowed between NodeBs and RNCs.

[0007] The core network 14 includes the network elements that support circuit-based communications as well as packet-based communications. In establishing a circuit channel to handle circuit-based communications between the wireless unit 18 b and a public switched telephone network (PSTN) 24 or another wireless unit, the base station 20 b receives (in the uplink) and transmits (in the downlink), the coded information (circuit voice or circuit switched data) over the wireless interface or link 16 b. The RNC 22 b is responsible for frame selection, encryption and handling of access network mobility. The RNC 22 b forwards the circuit voice and circuit switched data over a network, such as an ATM/IP network to a 3G mobile switching center (MSC) 30. The 3G-MSC 30 is responsible for call processing and macromobility on the MSC level. The 3G-MSC 30 establishes the connectivity between the wireless unit 18 b and the PSTN 24.

[0008] Commonly used terms in this technical field are “all-IP” and “IP all the way”. These terms both relate to the case where an IP is used end to end, even if the path involves cellular links, and IP is also run over the radio hop(s). This is done for all types of traffic, both the user data (e.g. voice or streaming) and control signaling data, either SIP (session initiation protocol) or RTSP (real time streaming protocol). A benefit of this is the service flexibility introduced by IP combined with the freedom provided by continuous mobility. The downside is the relative large overhead the IP protocol suite typically introduces, e.g. due to large headers and text-based signaling protocols.

[0009] In cellular systems, the scarce radio resources should be used in an efficient way. It should be possible to support a sufficient number of users per cell, otherwise costs will be prohibitive. Frequency spectrum and thus bandwidth are costly resources in cellular links and should be used carefully.

[0010] The ROHC (RObust Header Compression) working group has successfully solved the problem of reducing bandwidth requirements for the header parts of real time protocol (RTP), user datagram protocol (UDP), and IP packets. With this obstacle removed, new possibilities of enhancing mobile internet performance arise. One of these relates to application signaling protocols. Protocols such as SIP, RTSP, and SDP (session description protocol) are typically used to set up and control applications in a mobile Internet. However, the protocol messages are large in size and create delays due to their request/response nature. Compression of these messages would increase spectrum efficiency and reduce transmission delay.

[0011] The SIP is an application layer protocol for establishing, modifying and terminating multimedia sessions or calls. These sessions include Internet multimedia conferences, Internet telephony and similar applications. SIP can be used over either TCP (Transmission Control Protocol) or UDP. SIP is a text based protocol, using ISO 10646 in UTF-8 encoding.

[0012] The SDP may be used to advertise multimedia conferences and communicate conference addresses and conference tool-specific information. The SDP is also used for general real-time multimedia session description purposes. SDP is carried in the message body of SIP and RTSP messages. SDP is text based using the ISO 10646 character set in UTF-8 encoding.

[0013] The RTSP is an application level protocol for controlling delivery of data with real-time properties, such as audio and video. RTSP may use UDP or TCP (or another protocol) as the transport protocol. RTSP is text based using the ISO 10646 character set in UTF-8 encoding.

[0014] The above protocols have many similarities. These similarities have implications on solutions to the problems they create in conjunction with the cellular radio access. Their similarities include the following:

[0015] Requests and reply characteristics. When a sender sends a request, it stays idle until it has received a response, hence, it typically takes a number of round trip times to conclude a SIP, SDP, or RTSP session.

[0016] They are ASCII based. Thus to represent the value 230, 3*8=24 bits are used. A binary representation of the same value, by comparison, would require only 8 bits.

[0017] They are large in size in order to provide the necessary information to the session participants.

[0018] SIP and RTSP share many common header field names, methods and status codes. Their traffic patterns are also similar. The signaling is carried out primarily during the setup phase. For SIP, this means that the majority of the signaling is carried out to set up a phone call or multimedia session. For RTSP, the majority of the signaling is done before the transmission of application data.

[0019] As described above, the SIP is an application-layer control (signaling) protocol for creating, modifying and terminating sessions with one or more participants. These sessions include internet telephone calls, multimedia distribution and multimedia conferences.

[0020] SIP invitations are used to create sessions, which carry session descriptions that allow participants to agree on a set of compatible media types. SIP may make use of elements called proxy servers to help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies, and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. SIP is ASCII based and can run over multiple transport protocols. Since SIP is ASCII based, a parser is required to interpret the various fields.

[0021] Typical SIP messages are very large. In wireless network, airlink resources are limited. Thus, the call setup time can potentially be long over a 9.6 Kbps wireless link. There are on-going activities to design compression algorithms for SIP. The need for solving the problems caused by the signaling protocol messages is made clear by looking at a typical SIP/SDP Call Setup sequence over a narrow band cellular channel and by studying results from a simple system capacity example. These results indicate that there also would be a gain to the system capacity by reducing the size of the single protocol messages.

[0022]FIG. 2 illustrates an example of an SIP client new registration procedure in accordance with the conventional SIP protocol.

[0023] An exemplary Register F1 message (without authentication) for conventional SIP is as follows:

[0024] Register sip: ss2.wcom.com SIP/2.0

[0025] Via: SIP/2.0/UDP userB@there.com:5060

[0026] From: LittleGuy <sip: userB@there.com>

[0027] To: LittleGuy <sip: userB@there.com>

[0028] Call-ID: 123456789@there.com

[0029] CSeq: 1 REGISTER

[0030] Contact: <sip:userB@111.111.112.113>

[0031] Contact: <sip:+1-972-555-2222(gwl.wcom.co;user=phone>

[0032] Contact: tel:+1-972-555-2222

[0033] Content-Length: 0.

[0034] An exemplary 401 Unauthorized F2 message for conventional SIP is as follows:

[0035] SIP/2.0 401 Unauthorized

[0036] Via: SIP/2.0/UDP there.com:5060

[0037] From: LittleGuy <sip: userB@there.com>

[0038] To: LittleGuy <sip: userB@there.com>

[0039] Call-ID: 123456789@there.com

[0040] CSeq: 1 REGISTER

[0041] WWW-Authenticate: Digest Realm=“MCI WorldCom SIP”

[0042] domain=“sip:ss2.wcom.com”, nonce=“ea9c8e88d84f1cec4341ae6cbe5a359 ”,

[0043] opaque=″″, stale=FALSE, algorithm=“md5”

[0044] Content-Length: 0.

[0045] An exemplary Register F3 message for conventional SIP is as follows:

[0046] Register sip: ss2.wcom.com SIP/2.0

[0047] Via: SIP/2.0/UDP there.com:5060

[0048] From: LittleGuy <sip: userB@there.com>

[0049] To: LittleGuy <sip: userB@there.com>

[0050] Call-ID: 123456789@there.com

[0051] CSeq: 2 REGISTER

[0052] Contact: <sip:userB@111.111.112.113>

[0053] Contact: <sip:+1-972-555-222(gwl.wcom.co;user=phone>

[0054] Contact: tel:+1-972-555-2222

[0055] Authorization: Digest username=“UserB”,

[0056] realm domain=“MCI WorldCom SIP”,

[0057] nonce=“ea9c8e88d84f1cec4341ae6cbe5a359”, opaque=″″,

[0058] uri=“sip.ss2.wcom.com”, response=“dfe56131d1958046689cd83306477ecc”

[0059] Content-Length: 0.

[0060] An exemplary 200 OK F4 message for conventional SIP is as follows:

[0061] SIP/2.0 200 OK

[0062] Via: SIP/2.0/UDP there.com:5060

[0063] From: LittleGuy<sip:userB@there.com>

[0064] To: LittleGuy <sip: userB@there.com>

[0065] Call-ID: 123456789@there.com

[0066] CSeq: 2 REGISTER.

[0067] As can be seen above, many of the field are populated with long, ASCII character strings, which require extra bandwidth cause service setup delays.

SUMMARY OF THE INVENTION

[0068] The present invention is directed to a binary protocol for session initiation in a wireless communications system that shortens the message length, decreases the bandwidth and reduces service set up delays.

[0069] The present invention is also directed to a method, template, protocol, apparatus, system, and software for implementing a binary protocol in a wireless communication system. The present invention utilizes a binary session initiation protocol (B-SIP) that combines binary coding, templates, and session specific codebooks. The present invention provides a flexible template with fixed and variable length sub-fields, as well as a flexible template with optional fields. The present invention also utilizes a template ID, the binary encoding of some fields, such as a service provider address, a caller user ED, a caller user name, a callee user ID, and a callee user name, and utilizes IPv4/IPv6 format for domain names. The present invention also enables binary coding of numerical values for some fields. Still further, the present invention provides general purpose lossless text compression. In an exemplary embodiment, binary encoding of numerical fields also helps reduce the size of IP addresses, caller IDs, session IDs, etc. The present invention also includes a flexible template structure and permits the use of fixed lengths for selected template fields and encodes variable length field with either length indicators or delimiters. The present invention also permits optional fields to be inserted into templates to reduce the total number of templates that need to be stored in memory.

[0070] In one exemplary embodiment, the present invention is directed to a method for creating, modifying or terminating an IP multimedia session among one or more binary session initiation protocol (B-SIP) entities, including providing a flexible template with at least one mandatory field and at least one optional field, wherein the flexible template has fixed and variable length fields, representing a message type with a template id, and maintaining session specific information in a cache.

[0071] In another exemplary embodiment, the present invention is directed to a message template for creating, modifying or terminating an IP multimedia session among one or more binary session initiation protocol (B-SIP) entities, said message template including at least one mandatory field and at least one optional field, at least one fixed length field and at least one variable length field, wherein each of said at least one variable length fields is preceded by a length field and each of said at least one optional fields is preceded by an identifier, wherein said at least one mandatory field precedes said at least one optional field and said at least one fixed length field precedes said at least one variable length field.

BRIEF DESCRIPTION OF THE DRAWINGS

[0072] Other aspects and advantages of the present invention may become apparent upon reading the following detailed description and upon reference to the drawings in which:

[0073]FIG. 1 shows a general block diagram of a conventional network architecture.

[0074]FIG. 2 illustrates an example of an SIP client new registration procedure in accordance with the conventional SIP protocol.

[0075]FIG. 3 illustrates an exemplary architecture for implementing the binary protocol for session initiation in one exemplary embodiment of the present invention.

[0076]FIGS. 4 and 5 illustrate two examples of the B-SIP Call Setup procedure in one exemplary embodiment of the present invention.

[0077]FIG. 6 illustrates an example of the B-SIP Call Tear Down procedure in one exemplary embodiment of the present invention.

DETAILED DESCRIPTION

[0078]FIG. 3 illustrates the environment in which the binary protocol for SIP messages of the present invention may be performed. As illustrated in FIG. 3, two entities 10, 12 are separated by a physical channel 14. Each entity 10, 12 includes a physical layer 16, and IP layer 18, a UDP/TCP layer 20, and an SIP layer 24. In addition, the SIP layer 24 can be implemented as a raw protocol over the IP layer 18 or even as a raw protocol over the physical layer 16. Still further, layer 20 need not be a UDP/TCP layer but rather could be any other protocol ID usable for PPP negotiation.

[0079] The binary protocol for SIP (B-SIP) protocol provides message identifiers for different types of messages that are similar to conventional SIP. B-SIP also provides a plurality of flexible templates (thereby forming a protocol) containing mandatory/optional fields for each message type. Among the mandatory fields, those that require fixed length values come first while those with variable length values have a length field in front. Each optional field is preceded by a sub-field identifier. To provide efficient signaling, a list of the fixed SIP field values can be determined for specific applications. These fields can be hard-wired in the templates. In one embodiment of the present invention, the signaling may be in one of two modes; stateful and stateless. A stateful mode implies that certain B-SIP field values, such as the address_of_record of the caller and callee, are kept in memory for the duration of that call. The corresponding fields can potentially be omitted when messages are received in context. The session states could be stored in the B-SIP interpretation algorithm or derived from the states of the applications. The following examples describe how a user registers, sets up a call, modify parameters during the call and tear down call using the B-SIP in one exemplary embodiment of the present invention.

[0080] An example of the B-SIP client new registration procedure in accordance with the present invention is described below in conjunction with FIG. 2. An exemplary Register F1 template (without authentication) for B-SIP is as follows:

[0081] MessageID=004

[0082] Register sip: F1 SIP/2.0

[0083] Via: SIP/2.0/UDP F2:5060

[0084] From: F4 <sip:F3@F2>

[0085] To: F4 <sip:F3@F2>

[0086] Call-ID: F5

[0087] CSeq: F6 REGISTER

[0088] Contact (F61)(1 byte): tel: F71 (11 bytes)

[0089] Contact (F62): <sip: F72>

[0090] Contact (F63): <sip: F73>

[0091] Contact (F66): mailto F74

[0092] Expires (F69):

[0093] Content-Length: 0

[0094] Field for Register (with authentication)

[0095] Authorization (F65): Digest username=“F8” (not sent) realm=“F9” (not sent) nonce=F11 (not sent), uri=F10 (not sent), response=F13 (not sent).

[0096] The B-SIP message sent has the following:

[0097] mandatory fields:

[0098] TemplateID F1 (4 bytes) F2 (4 bytes) F5 (10 bytes) F3 (1 byte length+x1) F4 (1 byte length+x2)

[0099] optional fields:

[0100] F61 (1 byte)+Pref (1 byte): F71 (1 byte length+11 bytes)

[0101] F62 (1 byte)+Pref (1 byte): F72 (1 byte length+value)

[0102] F63 (1 byte)+Pref (1 byte): F73 (1 byte length+value)

[0103] F69 (1 byte)+4 byte value

[0104] It is noted that fields F8, F9, F10, F13 are not sent in the first Registration message. When authorization is required, certain fields will be transmitted depending on the fields that need to be altered from the 401 message.

[0105] As a result, the total message length=20+x1+x2+F8 onwards.

[0106] As can be seen from above, many of the ASCII string in the conventional SIP protocol are replaced with binary representations. These replacement make the message smaller and alleviate the need for a parser.

[0107] In the present embodiment, F1 may be in the form of an IPv4 address, the default “all SIP servers” multicast address “sip.mcast.net” (224.0.1.75) can be used. Further, F2 may reserve either 1 byte or 4 byte for a service provider identifier. Still further, the above example assumes the SIP port number 5060 is used, but this need not be the case. Further for the From and To fields, it is assumed that the same address_of_record will be used, but this need not be the case. Still further, F3 can be represented using 10 bytes, as can the Call_ID, but this need not be the case.

[0108] An exemplary 401 Unauthorized F2 message template for B-SIP is as follows:

[0109] TemplateID=041

[0110] SIP/2.0 401 Unauthorized

[0111] Via: SIP/2.0/UDP F2:5060 (not repeated)

[0112] From: F4 <sip:F3@F2>(not repeated)

[0113] To: F4 <sip:F3@F2>(not repeated)

[0114] Call-ID: F5

[0115] CSeq: F6 REGISTER

[0116] WWW-Authenticate: Digest Realm=“F9” domain=“F10”, nonce=“F11”, opaque=″″, stale=FALSE, algorithm=“F12”

[0117] Content-Length: 0.

[0118] The B-SIP 401 Unauthorized F2 message includes the following:

[0119] TemplateID (1 bytes) F5 (10 bytes) F10 (4 bytes) F11 (16 bytes) F12 (1 byte)

[0120] As a result, the total message length is 23 bytes+F8.

[0121] An exemplary Register F3 message template for B-SIP is as follows:

[0122] TemplateID=023

[0123] SIP/2.0 200 OK

[0124] Via: SIP/2.0/UDP F2:5060

[0125] From: F4 <sip:F3@F2>

[0126] To: F4 <sip:F3@F2>

[0127] Call-ID: F5

[0128] CSeq: F6 REGISTER

[0129] Option Fields:

[0130] Contact (F61): expires=F81

[0131] Contact (F62): expires=F82

[0132] Contact (F63): expires=F83

[0133] Content-Length;0.

[0134] The B-SIP Register F3 message for B-SIP includes the following:

[0135] TemplateID(1 byte) F5 (10 bytes) F6(4 bytes)

[0136] As a result, the total message length is 15 bytes.

[0137] Two examples of the B-SIP Call Setup procedure in accordance with the present invention is described below in conjunction with FIGS. 4 and 5.

[0138] For ease of understanding, in the following examples, the B-SIP message formats are fitted to existing SIP messages. However, this is not required, in fact, there is no need for the B-SIP templates to have the same SDP filed formats, etc., as the conventional SIP message. For example, it is sufficient for B-SIP to have a message, which could also be referred to as INVITE, that looks like the following (described in more detail below):

[0139] TemplateID (1 byte) Transport Option/Version Number (1 byte) F2 (4 byte) F3 (1 byte) F1 (10 bytes) F5 (10 bytes) F8 (10 bytes) F4 (1 byte+x1 bytes) F6 (1 byte+x2 bytes) F9 (2 bytes) F61 (1 byte) F71 (4 bytes).

[0140] The regular SIP INVITE message format is merely used to help convey what the Fx (x=1,2 . . . 71) fields represent.

[0141] Using the conventional SIP fields and notation, an exemplary INVITE message template for B-SIP is as follows:

[0142] TemplateID=001

[0143] INVITE sip: F1@F2 SIP/2.0

[0144] Via: SIP/2.0/UDP F3:5060

[0145] From: F4 <sip:F5@F3>

[0146] To: F6 <sip:F1@F2>

[0147] Call-ID: F7

[0148] CSeq: F8 INVITE

[0149] Contact (F61): <sip:F5(F71>

[0150] Content-Type: application/sdp

[0151] Content-Length: F9

[0152] (SDP Template)

[0153] v=0

[0154] o=F1 F110 F110 IN F111 F2′

[0155] s=Session SDP

[0156] c=IN F111 F71

[0157] t=0 0

[0158] m=F100 F101 RTP/AVP F102

[0159] a=rtpmap:F105 F106

[0160] a=qos:F103 F104.

[0161] The INVITE message for B-SIP includes the following:

[0162] Mandatory SIP fields

[0163] TemplateID (1 byte), Transport Option/Version Number(1 byte)

[0164] F2+F3(1 byte), F1(10 bytes), F5(10 bytes),

[0165] F4 (1 byte length indicator+x1 bytes), F6 (1+x2 bytes)

[0166] F7 (10 bytes), F8 (4 bytes), F9 (2 bytes), F61 (1 byte), F71(4 bytes)

[0167] Mandatory SDP fields

[0168] SessionID (F110): 4 bytes

[0169] IPversion (F111)=1 byte

[0170] Optional SDP fields

[0171] m:<media><port><transport><fmt list>

[0172] a:<rtpmap:<payload type><encoding name>/<clock rate>[/<encoding parameters>]

[0173] a:keyword:value

[0174] F100+F103+F104: 1 byte for media type:

[0175] audi/video+qos+sendrecv/sendonly/recvonly

[0176] F101: 2 bytes for port number

[0177] F102,F105,F106: 1 byte (loaded from the media profile, if compatible).

[0178] As a result, the total message length is 51+x1+x2+optional SDP field length.

[0179] An exemplary 100 Trying message template for B-SIP is as follows:

[0180] TemplateID=010

[0181] SIP/2.0 100 Trying

[0182] Via: SIP/2.0/UDP F1:5060

[0183] From: F2 <sip:F3@F1>

[0184] To: F4 <sip:F5@F6>

[0185] Call-ID: F7 10 bytes

[0186] CSeq: F8 4 bytes

[0187] Content-Length: 0.

[0188] The 100 Trying message for B-SIP includes the following:

[0189] TemplateID+F7+F8.

[0190] As a result, the total message length is 1+10+4=15 bytes.

[0191] An exemplary 180 Ringing message template for B-SIP is as follows:

[0192] TemplateID=011

[0193] SIP/b 2.0 180 Ringing

[0194] Via: SIP/2.0/UDP F1:5060

[0195] From: F2 <sip:F3@F1>

[0196] To: F4 <sip:F5@F6>

[0197] Call-ID: F7 10 bytes

[0198] CSeq: F8 4 bytes

[0199] Content-Length: 0.

[0200] The 100 Trying message for B-SIP includes the following:

[0201] TemplateID+F7+F8

[0202] As a result, the total message length is 1+10+4=15 bytes.

[0203] An exemplary template for 200 OK (respond to INVITE) is as follows:

[0204] TemplateID=020

[0205] SIP/2.0 200 OK

[0206] Via: SIP/2.0/UDP F2:5060

[0207] From: F4 <sip:F3@F2>

[0208] To: F4 <sip:F3@F2>;tag=F7

[0209] Call-ID: F5

[0210] CSeq: F6 INVITE

[0211] Option Fields:

[0212] Contact (F61): expires=F81

[0213] Contact (F62): expires=F82

[0214] Contact (F63): expires=F83

[0215] Content-Length;F8

[0216] +

[0217] Template for SDP.

[0218] The 200 OK (respond to INVITE) message for B-SIP includes the following:

[0219] TemplateID (1 byte)

[0220] +F5 (10 bytes)+F6(4 bytes)+F7(10 bytes)+F8 (2 bytes)

[0221] +F110 (4 bytes)+F111 (1 byte)

[0222] +61 onward

[0223] As a result, the total message length is 32+optional field length.

[0224] An exemplary template for ACK is as follows:

[0225] TemplateID=002

[0226] ACK sip:F1@F2 SIP/2.0

[0227] Via: SIP/2.0/UDP F3:5060

[0228] From: F4 <sip:F5@F3>

[0229] To: F6 <sip:F7@F2>; tag=F8

[0230] CallID: F9

[0231] CSeq: F10

[0232] Content-Length: 0

[0233] The ACK message for B-SIP includes the following:

[0234] TemplateID (1 byte)+F8 (10 bytes)+F9 (10 bytes)+F10 (4 bytes)

[0235] As a result, the total message length is 25 bytes.

[0236]FIG. 6 illustrates an example of the B-SIP Call Tear Down procedure in accordance with the present invention.

[0237] An exemplary template for the BYE message template for B-SIP is as follows:

[0238] TemplateID=003

[0239] BYE sip:F1@F2 SIP/2.0

[0240] Via: SIP/2.0/UDP F3:5060

[0241] From: F4 <sip:F5@F3>; tag=F7

[0242] To: F6 <sip:F1:F2>

[0243] CallID=F8

[0244] CSeq=F9

[0245] Content-Length=0.

[0246] The BYE message for B-SIP includes the following:

[0247] TemplateID (1 byte)+F7(10 bytes)+F8 (10 bytes)+F9 (4 bytes)

[0248] As a result, the total message length is 25 bytes.

[0249] An exemplary template for the 200 OK (to BYE) message for B-SIP is as follows:

[0250] TemplateID=022

[0251] SIP/2.0 200 OK

[0252] Via: SIP/2.0/UDP F2:5060

[0253] From: F4 <sip:F3@F2>

[0254] To: F4 <sip:F3@F2>;tag=F7

[0255] Call-ID: F5

[0256] CSeq: F6 BYE

[0257] Content-Length: 0

[0258] The BYE message for B-SIP includes the following:

[0259] TemplateID(1 byte) F5 (10 bytes) F6(4 bytes) F7(10 bytes).

[0260] As a result, the total message length is 25 bytes.

[0261] As described above, B-SIP is designed to reduce the parsing CPU time of SIP messages and reduce the delay over bandwidth limited wireless links. The strength of B-SIP lies the flexible template approach, state-full B-SIP interpreter, fixed field width and binary representation of the numerical SIP field values. A tradeoff between the complexity of the algorithm and the message size may be made. If more templates are used to accommodate typical option combinations for a type of message, the header size can be reduced, thereby enabling quick reaction by just checking the TemplateID without fully analyzing the message.

[0262] The binary-based session initiation protocol (B-SIP) described above may provide a major subset of the SIP features. The B-SIP design can be easily implemented and does not require a complicated parser and allows inter-operability with conventional SIP-based devices. B-SIP may be used in Push-to-Talk products.

[0263] Other features include the use of a template ID, the binary encoding of selective fields, such as the service provider address, the caller user ID, the caller user name, the callee user ID name, and the calleE user name, and an IPV4 format for domain names. Still further, these features include codebook management and session history. Still further, these features include a flexible template with fixed and variable length fields as well as a flexible template with optional fields. One or more combinations of the above features are effective in providing general purpose lossless text compression.

[0264] Although the above-identified examples have been described in the context of SIP protocol messages, these examples are equally applicable to SDP, RTSP or any other known or later developed protocol.

[0265] Still further, although the features of the present invention have been described above in the context of a method, these features are also applicable to apparatus, system, and software applications, and embodying the teachings of the present application in an apparatus, system, or software would be achievable by one of ordinary skill in the art.

[0266] What has been described is merely illustrative of the application of the principles of the present invention. Those skilled in the art will readily recognize that these and various other modifications, arrangements and methods can be made to the present invention without strictly following the exemplary applications illustrated and described herein and without departing from the spirit and scope of the present invention. 

We claim:
 1. A method for creating, modifying or terminating an IP multimedia session among one or more binary session initiation protocol (B-SIP) entities, comprising: providing a flexible template with at least one mandatory field and at least one optional field, wherein the flexible template has fixed and variable length fields; representing a message type with a template id; and maintaining session specific information in a cache.
 2. The method of claim 1, wherein fixed length fields are provided at the beginning of the flexible template and a variable length field is indicated by delimiter or length coding.
 3. The method of claim 1, wherein each of the at least one optional fields is preceded with a header ID.
 4. The method of claim 1, wherein a service provider address is assigned short binary IDs and stored in a B-SIP memory.
 5. The method of claim 1, wherein each B-SIP entity is initialized with a unique user ID and a number of group IDs to which the B-SIP entity belongs.
 6. The method of claim 5, wherein when a B-SIP entity is a caller, the unique user ID is used in place of the address of record of the caller if a message is sent to a capable server.
 7. The method of claim 5, wherein when a B-SIP entity is a callee, an address of record is used in place of the unique user ID.
 8. The method of claim 5, when a B-SIP entity is a caller, the unique user ID is used in place of the address of record of the caller if a message is sent to a capable B-SIP server and when a B-SIP entity is a callee, an address of record is used in place of the unique user ID.
 9. The method of claim 1, wherein the capable B-SIP server implements user ID look up
 10. The method of claim 1, wherein the flexible template includes a domain name field and an IP address field and the domain name field and the IP address field are represented in binary format.
 11. The method of claim 10, wherein the domain name field and the IP address field are represented by four bytes for an IPv4 address.
 12. The method of claim 1, wherein the flexible template includes at least one field containing a numerical value and the numerical value is encoded in binary format.
 13. The method of claim 1, wherein the flexible template corresponding to SIP respond messages eliminates repeat information.
 14. The method of claim 1, wherein all fields of the flexible template are binary coded or binary represented.
 15. The method of claim 14, wherein the fields of the flexible template that are binary coded or binary represented include media description, media load profile ID, encoding type, and sampling rate.
 16. A message template for creating, modifying or terminating an IP multimedia session among one or more binary session initiation protocol (B-SIP) entities, said message template comprising: at least one mandatory field and at least one optional field; at least one fixed length field and at least one variable length field; wherein each of said at least one variable length fields is preceded by a length field and each of said at least one optional fields is preceded by an identifier; wherein said at least one mandatory field precedes said at least one optional field and said at least one fixed length field precedes said at least one variable length field.
 17. The template of claim 16, further comprising a template ID at the beginning of said template.
 18. A protocol including a plurality of templates of claim
 16. 19. The template of claim 16, wherein a service provider address is assigned short binary IDs and stored in a B-SIP memory.
 20. The template of claim 16, wherein the template includes at least one field containing a numerical value and the numerical value is encoded in binary format.
 21. The template of claim 16, wherein the template corresponding to SIP respond messages eliminates repeat information.
 22. The template of claim 16, wherein some fields of the template are binary coded or binary represented.
 23. The template of claim 22, wherein the fields of the template that are binary coded or binary represented include media description, media load profile ID, encoding type, and sampling rate. 